package com.mmd.base.enums;

import com.mmd.core.enums.ResultEnum;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;

public interface CacheKeyService {
    /**
     * 获取key
     * @param suffix 后缀
     * @param <T> 后缀类型
     * @return String
     */
    default <T> String getKey(T suffix){
        return disposeKey("",suffix);
    }

    /**
     * 处理后缀
     * @param key 键
     * @param suffix 后缀
     * @param <T> 后缀类型
     * @return String
     */
    default <T> String disposeKey(String key,T suffix){
        Assert.isTrue(!StringUtils.isEmpty(suffix), ResultEnum.ERROR_SUFFIX.getMessage());
        return key + suffix;
    }
}
